package InnerClass.InnerClassDemo007;

/**
 * ClassName:Text
 * Package:InnerClass.InnerClassDemo007
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/1/26-2:07
 * @Version:v1.0
 */
public class Text001 {
    /* 4.匿名内部类(本质上就是隐藏了名字的内部类)
     *   格式：new 类名或者接口名(){
     *               重写方法
     *        };----》[继承/实现,方法重写,创建对象]*/
    public static void main(String[] args) {


        //编写匿名内部类的代码
        //Test$1
        new Swim() {

            @Override
            public void swim() {
                System.out.println("重写了游泳的方法");
            }
        };


//        new Animal(){
//
//            @Override
//            public void eat() {
//                System.out.println("狗吃骨头");
//            }
//        };

        //在测试类中调用下面的method方法
        //以前——要自己写一个子类继承Animal类
        //在创建子类的对象,传递给method方法
//        Dog d = new Dog();
//        method(d);


        method(
                new Animal() {
                    @Override
                    public void eat() {
                        System.out.println("狗吃骨头");
                    }
                }
        );
    }


    public static void method(Animal a) {
        //Animal a = 子类对象   ----->多态
        a.eat();
    }
}
